<?php

class Medicos extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->datosusuario = $this->authentication->getDataLogged();
        $this->load->model('m_medico', 'medico');
    }

    /**
     * Listado de Médicos.
     *
     * @return void
     */
    function index() {
        $medico = array();
        if (isset($_POST['submit'])) {
            $where = array();
            if ($this->input->post('matricula') != '') {
                $where['matricula'] = $this->input->post('matricula');
            }
            if ($this->input->post('numeroDoc') != '') {
                $where['numeroDoc'] = $this->input->post('numeroDoc');
            }
            if ($this->input->post('nombre') != '') {
                $where['nombre like'] = '%' . $this->input->post('nombre') . '%';
            }

            $medico = $this->medico->getList($where);
        }


        $data = array(
            'titulo' => 'Lista de Médicos',
            'datosusuario' => $this->datosusuario,
            'medicos' => $medico,
            'tipoDoc' => getListTipoDoc(),
            'seleccionar' => 'causas',
        );

        $this->load->view('templates/header', $data);
        $this->load->view('templates/topbar');
        $this->load->view('parametricas/leftbar');
        $this->load->view('medicos/index');
        $this->load->view('templates/footer');
    }

    /**
     * Crea un nuevo médico.
     *
     * @return void
     */
    function nuevo() {

        $this->form_validation->set_rules($this->medico->getValidacion());
        if ($this->form_validation->run() === FALSE) {
            if (isset($_POST['submit'])) {
                set_message(array('3' => validation_errors()));
                $medico = $_POST;
            } else {
                $medico = $this->medico->valoresPorDefecto();
            }

            $data = array(
                'datosusuario' => $this->datosusuario,
                'titulo' => 'Nuevo Médico',
                'medico' => $medico,
                'tipoDoc' => getListTipoDoc(),
                'distritos' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10),
                'seleccionar' => 'parametricas',
            );

            $this->load->view('templates/header', $data);
            $this->load->view('templates/topbar');
            $this->load->view('parametricas/leftbar');
            $this->load->view('medicos/form');
            $this->load->view('templates/footer');
        } else {
            if ($this->input->post('distrito') != 9) {
                $_POST['matricula'] = $this->input->post('distrito') . '000000' . $_POST['matricula'];
            }
            $this->medico->setAttributes($this->input);

            $this->medico->save();

            set_message(array('1' => 'Se ha agregado un nuevo médico: "' . $this->medico->nombre . '".'));

            redirect('medicos/');
        }
    }

    /*
      function nuevo_popup() {

      $this->form_validation->set_rules($this->medico->getValidacion());
      if ($this->form_validation->run() === FALSE) {
      if (isset($_POST['submit'])) {
      set_message(array('3' => validation_errors()));
      $medico = $_POST;
      } else {
      $medico = $this->medico->valoresPorDefecto();
      }

      $data = array(
      'datosusuario' => $this->datosusuario,
      'titulo' => 'Nuevo Médico',
      'medico' => $medico,
      'tipoDoc' => getListTipoDoc(),
      'distritos' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10),
      'seleccionar' => 'parametricas',
      );

      $this->load->view('templates/header', $data);
      $this->load->view('medicos/form');
      $this->load->view('templates/footer');
      } else {
      $this->medico->setAttributes($this->input);

      $this->medico->save();

      $data = array(
      'valor' => $this->medico->matricula,
      'nombre' => $this->medico->nombre,
      );
      $this->load->view('medicos/retorno_valor', $data);
      }
      }
     */

    /**
     * Edita una nuevo médico.
     *
     * @param integer $matricula La matricula del nuevo médico para editar.
     * @return void
     */
    function editar($matricula = '') {

        if ($matricula == '')
            redirect('medicos/');


        if ($this->medico->get((int) $matricula)) {

            $this->form_validation->set_rules($this->medico->getValidacion(true));
            if ($this->form_validation->run() === FALSE) {
                if (isset($_POST['submit'])) {
                    set_message(array('3' => validation_errors()));
                    $medico = $_POST;
                } else {
                    $medico = $this->medico->doArray();
                }


                $data = array(
                    'datosusuario' => $this->datosusuario,
                    'titulo' => 'Editar Médico',
                    'medico' => $medico,
                    'tipoDoc' => getListTipoDoc(),
                    'distritos' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10),
                    'seleccionar' => 'parametricas',
                    'editar' => true,
                );

                $this->load->view('templates/header', $data);
                $this->load->view('templates/topbar');
                $this->load->view('parametricas/leftbar');
                $this->load->view('medicos/form');
                $this->load->view('templates/footer');
            } else {
                $_POST['matricula'] = $this->medico->matricula;

                $this->medico->setAttributes($this->input);
                $this->medico->update();

                set_message(array('1' => 'Se ha editado el médico: ' . $this->medico->nombre . '.'));

                redirect('medicos/');
            }
        } else {
            redirect('medicos/');
        }
    }

    /**
     * Ver estado de cuenta
     *
     * @param integer $matricula La matricula del médico a eliminar.
     * @return void
     */
    function estado_cuenta($matricula, $fecha) {
        $this->load->model('m_deuda', 'deuda');
        $this->load->model('M_Tipo_Movimiento', 'tipo_movimiento');

        $tipo_movimientos_array = $this->tipo_movimiento->getList();
        $tipo_movimientos = array();
        foreach ($tipo_movimientos_array as $tipo_mov) {
            $tipo_movimientos[$tipo_mov->id] = $tipo_mov->nombre;
        }

        $deudas = $this->deuda->getList(array('matricula' => $matricula), array('fecha' => 'ASC'));
        $this->medico->get((int) $matricula);

        $data = array(
            'datosusuario' => $this->datosusuario,
            'titulo' => 'Estado Cuenta',
            'medico' => $this->medico,
            'tipoDoc' => getListTipoDoc(),
            'deudas' => $deudas,
            'tipo_movimientos' => $tipo_movimientos,
            'fecha' => $fecha,
        );

        $this->load->view('templates/header', $data);
        $this->load->view('medicos/estado_cuenta');
        $this->load->view('templates/footer');
    }

    
    function causas_por_demandado($matricula) {
        $titulos = array(
            'Nro de Causa',
            'Fuero',
            'Carátula',
            'Fecha de Inicio',
            'Fecha de Presentación',
            'Valoración',
        );
        $atributos = array(
            'causaId',
            'fueroNombre',
            'caratulaNombre',
            'fechaInicio',
            'fechaPrecentacion',
            'valoracion',
        );

        $this->load->model('m_reporte', 'reporte');
        $this->load->model('m_medico', 'medico');
        $this->medico->get($matricula);
        
        $reporte = $this->reporte->buscarXDemandado($matricula);

        $valoracion = getListValoreciones();
        
        foreach ($reporte as $key => $field){
            $reporte[$key]->valoracion = $valoracion[$field->valoracion];
        }
        
        $data = array(
            'titulo' => 'Listado de Causas por Médico',
            'datosusuario' => $this->datosusuario,
            'seleccionar' => 'reportes',
            'subtitulo' => 'Medico: <span>' . $this->medico->nombre . ' (' . $this->medico->matricula . ')',
            'reporte' => $reporte,
            'titulos' => $titulos,
            'atributos' => $atributos,
            'url' => 'reportes/causas_por_demandado/',
            'parametro' => $matricula
        );

        $this->load->view('templates/header', $data);
        $this->load->view('reportes/reporte');
        $this->load->view('templates/footer');
    }
}

